#pragma once

#include <iostream>

// 饿汉模式
class Signal
{
private:
    // 构造函数私有化
    Signal()
    {}

    // 删除拷贝构造
    Signal(const Signal&) = delete;

public:
    static Signal *getInstance()
    {
        return _sigptr;
    }

    void print()
    {
        std::cout << "Hello Signal!" << std::endl;
    }

private:
    // 指向单例对象的静态指针
    static Signal *_sigptr;
};

Signal* Signal::_sigptr = new Signal();